草庐IT

HTTP 400 错误

全部标签

go - 我应该在包级别但在 http 处理程序之外声明变量吗?

我使用gingonic作为HTTP框架,我需要像这样用共享变量对一些路径进行分组:ur:=r.Group("/")ur.Use(package.Prepare){ur.GET("/",package.Home)}在Prepare处理程序中,我将包变量声明为package.tplPath因为我希望所有子路由都可以访问这个变量,而不是在每个http处理程序中重写代码。vartplPath=""funcPrepare(c*gin.Context){_,filename,_,_:=runtime.Caller(0)s:=helper.RelativeFilePath(filename)tplP

http - 如何在 golang 中获取 http 请求的初始时间戳?

我正在使用revel框架编写一个golang程序,我需要在其中检查http请求的初始时间戳。我知道如何在C#中做到这一点:HttpContextWrappercontext=Request.Properties["MS_HttpContext"]asHttpContextWrapper;DateTimet2=context.Timestamp.ToUniversalTime();不太了解如何在Go中做到这一点。 最佳答案 .Net框架中的HttpContext类setsthetimestampwhenarequestarrivesa

Golang 短变量声明显示错误未解决

我是从Java到Go的新手看我的代码packageutilsimport"os"typeFileControllerstruct{file*os.File}func(c*FileController)OpenFile(pathstring)error{c.file,err:=os.OpenFile(path,os.O_CREATE|os.O_RDWR,0755)//returnsomevaluethese}我想打开一个文件,但这不起作用Goland告诉我未解析的引用'err'如果我先初始化错误,我会编写以下代码varerrerrorc.file,err=os.OpenFile(path

go - 在 go 中使用多个返回值的惯用错误和值顺序

当创建一个既返回错误又返回结果的func时,它们应该按什么顺序排列?我看过这两个示例,但不确定从哪里可以确认惯用风格。应该是://afuncfuncName(nint)(error,int){}//orbfuncfuncName(nint)(int,error){} 最佳答案 正如上面@Gavin在评论中指出的那样:Ifyoulookhere,youwillseeByconvention,errorsarethelastreturnvalueandhavetypeerror,abuilt-ininterface.在标准库中可以看到。

go - net/http 不适用于 ipv6 地址

我正在尝试向本地ipv6地址(通过mdns发现)发出“GET”请求。问题是请求fails.这是为什么?packagemainimport("fmt""net/http")funcmain(){url:="http://[fe80::cf5:b02f:27c3:2abe]:7070/kw/"rsp,err:=http.Get(url)fmt.Println(rsp,err)}输出Gethttp://[fe80::cf5:b02f:27c3:2abe]:7070/kw/:dialtcp[fe80::cf5:b02f:27c3:2abe]:7070:socket:Unknownprotoco

http - 向 Struct 添加一些日期,然后将其放入 go 模板中

我有一个文件controllers/catalog.go,它包含一个HTTP处理程序:funcCatalog(whttp.ResponseWriter,r*http.Request){ifr.Method!="GET"{http.Error(w,http.StatusText(405),http.StatusMethodNotAllowed)return}categories,err:=models.GetCategories()iferr!=nil{http.Error(w,http.StatusText(500),http.StatusInternalServerError)ret

在 Windows 10 64 位分割错误上使用 Fitz 将 PDF 转换为图像

我正在OSX和Windows(VM)上编译以下程序packagemainimport("fmt"fitz"github.com/gen2brain/go-fitz")funcmain(){doc,err:=fitz.New("ML-XX-XX-XX.000_REV1.pdf")iferr!=nil{panic(err)}fmt.Println("finished")deferdoc.Close()}在OSX上这运行得非常好,在Windows上我得到一个段错误,并且输出消息(在命令提示符中)为exitstatus3221225477谷歌搜索似乎是缓冲区溢出,但不完全确定如何调试/处理它。

go - curl http 服务器没问题,但浏览器不起作用

我刚开始接触Golang中的网络应用。这是作为起点的简单代码:packagemainimport("fmt""log""net/http")const(CONN_HOST="localhost"CONN_PORT="8080")funchelloWorld(whttp.ResponseWriter,r*http.Request){fmt.Fprintf(w,"HelloWorld!")}funcmain(){http.HandleFunc("/",helloWorld)err:=http.ListenAndServe(CONN_HOST+":"+CONN_PORT,nil)iferr!

go - 模拟一个在 Golang Http 处理程序中调用的函数

我有一个函数需要测试,它看起来像这样:funcparmHandler(whttp.ResponseWriter,r*http.Request){...data,err=backenddb_call(r*http.Request)...return}functionbackenddb_call(r*http.Request)(data[]Data,errerror){parm:=r.URL.Query().Get(parm)//GetDatafromDBforparm...return}在这种HTTP处理程序的情况下,我无法修改parmHandler参数并添加帮助接口(interface

http - 是否可以从 http Handle 函数写入 channel ?

我想在发生http请求时将值传递给channel,我得到了这段代码:packagemainimport("io""net/http""time")varchannel1chanintfuncmain(){channel1:=make(chanint)gofunc(){select{case当我向“/”发出请求时,它在channel1 最佳答案 是的,这是可能的。需要考虑的一件事是您在channel上发送的数据的生命周期。目前channel是无缓冲的,因此发送:channel1需要接收:case这意味着写入将排队并阻塞,直到它们准备好